package cn.yunhe.java.dao;

import cn.yunhe.java.pojo.SysRoleUser;
import cn.yunhe.java.pojo.SysRoles;
import cn.yunhe.java.pojo.SysUser;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;


public interface SysUserMapper {
//    int deleteByPrimaryKey(Integer userId);
//
//    int insert(SysUser record);
//    int insertSelective(SysUser record);
//

//
//
//    int updateByPrimaryKeySelective(SysUser record);
//
//    int updateByPrimaryKey(SysUser record);

    List<SysUser> queryAllUser();
    /**
     * 根据用户id查询用户信息
     * @param userId
     * @return
     */
    SysUser selectByPrimaryKey(Integer userId);

    /**
     * 登录，根据登录用户名查询用户信息
     * @param userName
     * @return
     */
    SysUser findByeLoginName(String userName);

    /**
     * 根据条件查询用户信息
     * @param su
     * @return
     */
    Page<SysUser> queryByCondition(SysUser su);

    /**
     * 修改用户的状态
     * @param userId
     * @param userStatus
     * @return
     */
    int updateUserStatus(@Param("userId") Integer userId,@Param("userStatus") Integer userStatus);

    /**
     * 保存用户信息
     * @param su
     * @return
     */
    int insertSelective(SysUser su);

    /**
     * 根据注解删除用户信息
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 修改用户信息
     * @param su
     * @return
     */
    int updateByPrimaryKeySelective(SysUser su);

    /**
     * 根据用户id查询角色信息
     * @param userId
     * @return
     */
    List<SysRoles> selectAllRoles(@Param("userId") Integer userId);

    /**
     * 删除当前用户的所有角色
     * @param userId
     * @return
     */
    int deleteRoleByUserId(@Param("userId") Integer userId);

    /**
     * 保存角色对应用户信息
     * @param list
     * @return
     */
    int insertUserRoles(List<SysRoleUser> list);

    /**
     * 修改密码
     * @param id
     * @param sha256
     * @return
     */
    int updatePassword(@Param("userId") Integer id, @Param("password") String sha256);

    /**
     * security框架查询用户权限
     * @param id
     * @return
     */
    List<Map<String,String>> queryAllRights(@Param("userId") Integer id);
}